Method and apparatus to permit external access to internal configuration registers

ABSTRACT

Access to internal configuration registers on a computer system&#39;s chipset using an external micro-controller is provided. A SMB configuration read command including a register address may be received from an external micro-controller. Access to an internal bus may be requested from a bus arbiter. If internal bus access is granted, the SMB configuration read command may be forwarded to a device including the identified register address using the internal bus. In response to the SMB configuration read command, configuration register values from the device may be received. The configuration register values may be forwarded to the external micro-controller.

This application is a continuation of patent application Ser. No.10/183,641, filed on Jun. 28, 2002, entitled “Method and Apparatus toPermit External Access to Internal Configuration Registers”; and claimspriority thereof.

TECHNICAL FIELD

The present invention relates to computer systems. In particular, thepresent invention relates to system management with an external microcontroller.

BACKGROUND OF THE INVENTION

A typical computer system consists of several basic components,including a central processor, volatile and non-volatile memory, andvarious peripheral devices, including graphics controller(s), massstorage devices, and input/output devices. A chipset connects thesecomputer system components together, and manages the flow of informationbetween them. Several different communications protocols may be used bythe computer system, including, for example, Peripheral ComponentInterconnect (PCI), Small Computer System Interface (SCSI-2, ANSI, etc),Universal Serial Bus (USB), system management interface, etc.

Historically, computer system chipsets use a Northbridge/Southbridgearchitecture, in which the functionality of the chipset is apportionedbetween two basic chips, or components, a Northbridge chip and aSouthbridge chip, connected via a hublink bus. The Northbridge chipconnects the central processor to main/secondary memory, graphicscontroller(s), and the hublink bus, while the Southbridge chip connectsall the other input/output (I/O) devices to the hublink bus. The I/Odevices are indirectly connected to the central processor via variousexternal busses and the hublink bus on the Northbridge chip.

A chipset, developed by the Intel Corporation of Santa Clara, Calif.,uses an accelerated hub architecture. In this chipset, the functionalityof the traditional Northbridge and Southbridge chips is divided amongthree basic components, the Memory Controller Hub (MCH), the I/OController Hub (ICH), and the Firmware Hub (FWH). These hubs areconnected using a high-speed, proprietary data bus, (hub bus), ratherthan the PCI bus. As the name suggests, the ICH provides I/Ofunctionality similar to that residing in the Southbridge chip, and mayinclude modular components connected internally using a variety ofinternal buses. The ICH may also include various external businterfaces, such as, for example, a PCI bus interface, or a systemmanagement bus (SMBus) interface.

PCI configuration registers in the chipset may store a variety ofconfiguration register information for the PCI devices connected to thesystem. For example, PCI configuration registers may containconfiguration information from each PCI card and/or device included inthe system. PCI cards may include, for example, PCI LAN cards, PCI audiocards, PCI video cards, PCI SCSI cards, etc. Configuration registerinformation contained in the configuration registers 144 may include,for example, manufacturing ID, device ID, software and/or hardwarerevision ID, and/or any other information related to the particular PCIcard or device.

Using conventional techniques, PCI configuration registers can be readusing suitable software programs running on the central processing unit.In the event, for example, the higher-level operating system freezesand/or the path from the processor to the chipset is otherwise blocked;it may not be possible to read the PCI configuration registers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a partial computer network in accordancewith an embodiment of the present invention.

FIG. 2 is a flowchart illustrating a method in accordance withembodiments of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention provide a chipset architecture thatmay enable an external micro-controller to access and/or control PCIconfiguration registers using a system management bus controller. ThePCI configuration registers may contain device hardware/softwareconfiguration information, management information, availabilityinformation, etc. In embodiments of the present invention, the externalmicro-controller may operate on a secondary operating system (OS)independent from the higher level OS running on the computer system. Thesecondary OS may operate in the background, with or without the presenceof a higher level OS running. Using the external micro-controller and asystem management controller, configuration register information may beretrieved in the background independent of the central processing unitand/or the higher level OS running.

In one embodiment, a data path is provided from the externalmicro-controller to the configuration registers using an systemmanagement bus interface and the system management bus controller.Advantageously, the disclosed chipset architecture may offer additionalsystem management capabilities while maximizing system availability.

FIG. 1 is a partial block diagram of a network 100 in which theembodiments of the present invention find application.

In embodiments of the present invention, system 100 may includeadditional computers, modules and/or devices that are not shown forconvenience. The network 100 may be a local-area network (LAN), awide-area network (WAN), a campus-area network (CAN), ametropolitan-area network (MAN), a home-area network, an Intranet,Internet and/or any other type of computer network. It is recognizedthat embodiments of the present invention can be applicable to twocomputers that are coupled together in, for example, a client-serverrelationship or any other type of architecture such as peer-to-peernetwork architecture. The network 100 may be configured in any knowntopology such as a bus, star, ring, etc. It is further recognized thatnetwork 100 may use any known protocol such as Ethernet, fast Ethernet,etc. for communications.

As shown in FIG. 1, the system 100 is a partial representation of clientcomputer 101 that includes an external micro-controller 140 coupled tochipset 130 via a communication path, for example, a system managementbus interface (e.g., SMBUS I/F) 181 using an external system managementbus (SMBus) 150.

In accordance with embodiments of the present invention, additionalclients 101 may be included in the network 100 coupled to a managementconsole or computer (not shown). In this case, PCI configurationregister information gathered by the micro-controller 140 for eachclient 101 may be shared with the management console via the networkconnection. This information may be centrally stored in the managementconsole and may be used for management and/or maintenance purposes. Forexample, software and/or hardware revision IDs for PCI devices connectedto each client 101 may be readily accessible and analyzed prior to anetwork and/or system upgrade to prevent any compatibility issues.

Additionally, it is recognized that the devices such as externalmicro-controller 140 and/or client 101 may be coupled to other clientsusing a wireless interface and/or a wireless communications protocol.Embodiments of the present invention may find application in a personaldigital assistant (PDA), a laptop, a cell phone, and/or any otherhandheld and/or desktop device.

In embodiments of the present invention, client computer 101 may includea CPU 110 connected to a chipset 130 via a memory controller hub (MCH)120. The CPU 110 may be coupled to the MCH 120 using, for example, ahost bus 104 and the MCH 120 may be coupled to the chipset 130 using bus105.

As indicated above, the micro-controller 140 may be coupled to thechipset 130 via the interface 181 using an external SMBus 150 and/orother external interface/bus combination.

The chipset 130 of computer system 101 may include, for example, asystem management bus (SMB) controller 131, hublink module 132,peripheral devices133, north PCI bridge 141, bus arbiter 142, south PCIbridge 143, south PCI bridge configuration registers (PCI registers)144, low pin count registers (LPC) 145 and a system management bus (SMB)host 137. The system management bus (SMB) controller 131, hub-linkmodule 132, peripheral devices 133, north PCI bridge 141 and bus arbiter142 may all be connected to internal bus 160. The internal bus 160 maybe, for example, an ISA bus, a SMBus, a PCI bus and/or any other type ofbus.

In embodiments of the present invention, the PCI registers 144, LPC 145and SMB host 137 may be coupled to the south PCI bridge 143 that iscoupled to the north PCI bridge 141 via PCI bus 138. PCI Bus 138 couplessouth the PCI bridge 143, PCI registers 144, LPC 145 and SMB host 137 tointernal bus 160. The PCI bus 138 may also provide an externalconnection via an external PCI interface 185.

Typically, the north PCI bridge 141 connects to main/secondary memory,graphics controller(s), and the peripheral component interconnect bus(PCI bus). The south PCI bridge 143 may connect all the other I/Odevices to the PCI bus 105. The plurality of I/O devices may beindirectly connected to the CPU 110 via the PCI bus 105 and the Host-PCIbus 104 via the MCH 120. MCH 120 may interface with chipset 130 via thehub-link module 132.

In embodiments of the present invention, system 100 includes a pluralityof internal and/or external communication buses that connect the variouscomponents internal to and/or external to the client 101. These bussesmay include, for example, host bus 104, PCI or proprietary bus 105,internal bus 160, SMBus 150, PCI bus 138, PCI bus 155 and/or other PCIbuses (not shown).

In embodiments of the present invention, the external micro-controller140 may be, for example, an 8, 16 or 32 bit microprocessor. Themicro-controller 140 may be located internal or external to themotherboard, and may operate using a secondary OS independent of thehigher level OS running on the computer system. Accordingly, themicro-controller 140 may operate in the background of the higher levelOS. In accordance with embodiments of the present invention, themicro-controller 140 may still be operational even if the higher levelOS of computer system 101 is not in operation and/or is in a faultcondition. Advantageously, micro-controller 140 may access PCIconfiguration registers even when the computer system 101 is locked upor in a fault state.

In embodiments of the present invention, micro-controller 140 may accessinformation contained in PCI configuration registers 144, internalregisters of peripheral devices 133, and/or any other type of internalregisters located in computer system 101 using SMB controller 131. Forexample, PCI configuration registers 144 may copy configurationinformation from each PCI card and/or device included in the system. PCIcards may include, for example, PCI LAN cards, PCI audio cards, PCIvideo cards, PCI SCSI cards, etc. Configuration information copied intothe configuration registers 144 may include, for example, manufacturingID, device ID, software and/or hardware revision ID, and/or any otherinformation related to the particular PCI card or device.

In embodiments of the present invention, additional information copiedto the configuration registers 144 may include device identificationinformation, the amount of time the device has been operation, date,time and description of last fault, date, time and description of lastrepair, and/or any other information that may be needed to manage,repair, and/or replace the device to prevent system failures.

In embodiments of the present invention, the information stored in theconfiguration registers 144 may be used by the external micro-controller140 for inventory management, to predict when a device may fail, topredict when the device may need to be repaired and/or replaced, etc. Asindicated above, such information may be sent to a management consoleusing a LAN where the information centrally located and used for systemmaintenance and/or system management purposes.

In embodiments of the invention, external micro-controller 140 mayaccess the register configuration values using the SMB controller 131via external system management bus 150 and SMBus interface 181. Theexternal micro-controller 140 can periodically access the registerconfiguration values by sending a SMB configuration read command to theSMB controller 131. The SMB configuration read command may include anaddress identifying the register and/or device for which internalconfiguration information is desired. Responsive to the SMBconfiguration read command, from external micro-controller 140, the SMBcontroller 131 may send a read request to bus arbiter 142 using internalbus 160.

In embodiments of the present invention, the bus arbiter 142 containslogic to the arbitrate between traffic or requests from, for example,the CPU 110, the external micro-controller 140 and other devices and ormodules in system 100. By providing an external connection to theinternal bus 160, micro-controller 140 can access the plurality ofconfiguration registers associated with modules located on the chipset130 and/or other devices coupled to computer system 101.

In embodiments of the present invention, the SMB controller 131 mayrequest bus arbiter 142 for access to the internal bus 160. As indicatedabove, the bus arbiter 142 controls access to internal bus 160. If theinternal bus 160 is being accessed by another device such as CPU 110,the bus arbiter 142 may not grant access to the SMB controller 131. Whenthe internal bus 160 is available, management controller 131 is grantedaccess to the bus 160. The SMB controller 131 may post the SMBconfiguration read command on internal bus 160. It is recognized thatthe SMB configuration read commands may be issued and/or processed usingnormal SMB protocol and may use an SMB based signal. Although SMBconfiguration read commands are used herein, it is recognize that thesecommands may be read commands, write commands and/or other type ofcommands.

In embodiments of the present invention, the SMB configuration readcommand is forwarded to the module and/or device identified by theaddress included in the SMB configuration read command. For example, theSMB configuration read command may be sent to PCI configurationregisters 144. In embodiments of the present invention, the SMBconfiguration read command may request the entire contents of theconfiguration register and/or may request only portion of the contentsof the configuration registers.

In embodiments of the present invention, the module or device identifiedby the address may receive the SMB configuration read command andprocesses the read request. The module and/or device may retrieve therequested information from the internal configuration registers andforward the contents of the configuration registers to the SMBcontroller 131.

In embodiments of the invention, the device may request the bus arbiter142 for access to the internal bus 160. When the internal bus 160 accessis granted, the module may post the contents of the configurationregisters on internal bus 160. The requested configuration registervalues may be retrieved from the internal bus 160 by the SMB controller131. The SMB controller 131 may forward the configuration values to theexternal micro-controller 140 via the SMB interface 181.

In embodiments of the present invention, the contents of theconfiguration registers may be used by the micro-controller 140 forsystem management purposes. For example, the micro-controller 140 maydetermine based on the contents of the registers, the version ofsoftware running on the device, the hardware version of the device, theamount of time the device has been operation, and/or any otherinformation related to the device operation and/or management. Suchinformation may be used for inventory management and/or to predict whenthe corresponding device and/or module may fail. In this case the devicemay be examined, repaired, and/or replaced prior to failure. Inembodiments of the present invention, external micro-controller may becoupled to a plurality of computers 101 and may be able to quicklyretrieve and/or request the contents of configuration registersassociated with devices and/or modules related to the plurality ofcomputers 101.

As indicated above, in embodiments of the present invention,micro-controller 140 may use an OS that is running independent of the OSof computer system 101. Accordingly, the external micro-controller 140may be able to access contents of the configuration registers even whensystem 101 is in a fault and/or lock-up state. The externalmicro-controller 140 may retrieve and/or use the contents of theinternal registers to diagnose, isolate and/or repair faults related tothe corresponding device and/or module. Additionally, the use of theexternal micro-controller to access the configuration registers may freethe CPU 110 from this responsibility.

In an embodiment of the present invention, the micro-controller 140 mayrequest the contents of the configuration registers on a periodic basis,during a fault condition and/or when requested by an operator.

In embodiments of the present invention, contents of the configurationregisters may be used to determine, for example, the total amount oftime the associated device has been in operation. In one example, thetotal time of the operation time may be compared with the mean oraverage time before failure for the particular device. This informationmay be used to maintain, repair and/or replace the corresponding moduleand/or device. An operator may be notified if a particular device isapproaching such a possible failure point.

FIG. 2 is a flowchart illustrating a method in accordance with anembodiment of the present invention. In one embodiment of the presentinvention, a SMB configuration read command including a register addressis received from the external micro-controller 140, as shown in 2010.The SMB controller 131 or another device may receive the SMBconfiguration read command from the external micro-controller 140. Asshown in 2020, access to the internal bus 160 is requested from the busarbiter 142. Once bus access is granted, the SMB configuration readcommand may be sent to the peripheral device with the correspondingconfiguration register identified by the register address, as shown in2030-2040.

If, on the other hand, bus access is not granted, the SMB controller 131may continue to request bus access until granted, as shown in 2030 and2020.

In embodiments of the present invention, the corresponding device mayretrieve contents of the configuration registers and send the retrievedcontents to the SMB controller 131 once access to the internal bus 160is granted from arbiter 142. As shown in 2050-2060, the requestedcontents of the configuration registers may be received by the SMBcontroller 131 and forwarded to the external micro-controller 140.

In embodiments of the present invention, the external micro-controller140 examines the contents of the configuration registers and may logthis information. As indicated above, the external micro-controller mayuse the contents of the configuration registers for inventory managementand recordation purposes. In addition, the external micro-controller 140may use the contents of the configuration registers to predict whendevice may fail based on the time the device has been in operation. Inthis manner, an operator may take action before the device fails.

Several embodiments of the present invention are specificallyillustrated and described herein. However, it will be appreciated thatmodifications and variations of the present invention are covered by theabove teachings and within the purview of the appended claims withoutdeparting from the spirit and intended scope of the invention.

1. An apparatus comprising: a SMB controller to access PCI configurationregisters responsive to a read request from an externalmicro-controller.
 2. The apparatus of claim 1, wherein responsive to theread request the SMB controller to generate an SMB configuration readrequest including an address for a configuration register to be read. 3.The apparatus of claim 1, further comprising: an internal bus coupled tothe SMB controller to deliver PCI configuration register values to theSMB controller in response to the read request from the externalmicro-controller.
 4. The apparatus of claim 3, further comprising: whenthe internal bus is available, a bus arbiter to grant access to theinternal bus in response to a request for internal bus access from theSMB controller.
 5. The apparatus of claim 4, further comprising: aconfiguration register to receive a SMB configuration read request fromthe SMB controller and to send configuration values to the SMBcontroller.
 6. A system for accessing peripheral configurationregisters, comprising: an external bus interface coupled to an externalmicro-controller using an external system management bus; an internalbus; and a system management bus controller coupled to the external businterface and the internal bus , wherein responsive to a SMBconfiguration read command including a configuration register addressfrom the external micro-controller, the controller to send the SMBconfiguration read command to a configuration register of a peripheraldevice identified by the configuration register address using theinternal bus, and wherein the controller to receive configurationregister values for the identified configuration register from theperipheral device in response to the SMB configuration read command andto forward the configuration register values to the externalmicro-controller.
 7. The system of claim 6, further comprising: aperipheral device to receive the SMB configuration read command,retrieve configuration register values in configuration registeridentified by the configuration register address, forward theconfiguration register values to the system management controller whenthe internal bus is available for access.
 8. A method comprising;receiving a SMB configuration read command including a register addressfrom an external micro-controller; requesting access to an internal busfrom a bus arbiter; if internal bus access is granted, forwarding theSMB configuration read command to a device including register addressusing the internal bus; responsive to the SMB configuration readcommand, receiving configuration register values from the device; andforwarding the configuration register values to the externalmicro-controller.
 9. The method of claim 8, further comprising:determining by the bus arbiter whether the internal bus is available foraccess; and granting access to the internal bus when the internal bus isavailable.
 10. The method of claim 8, further comprising: receiving arequest to access the internal bus from the device by the bus arbiter;determining when the internal bus is available for access by the device;and granting bus access to the device when the internal bus isavailable.
 11. The method of claim 10, further comprising: receiving theSMB configuration read command at the device; retrieving configurationregister values from a configuration register identified by the registeraddress; and forwarding the configuration register values when theinternal bus is available.
 12. A system management bus controllercoupled to an external micro-controller and an internal bus, wherein thesystem management bus controller provides the external micro-controlleraccess to configuration registers of a plurality of peripheral devicesconnected to a chipset using the internal bus.
 13. The system managementcontroller of claim 12, wherein the system bus controller requestsaccess to the internal bus from a bus arbiter, and when access isgranted, the system bus controller sends a SMB configuration readcommand to at least one of the plurality of peripheral devices.
 14. Thesystem management controller of claim 13, wherein the system buscontroller receives configuration register values from the at least oneof the plurality of peripheral devices and forwards the configurationregister values to the external micro-controller.
 15. A machine-readablemedium having stored thereon a plurality of executable instructions, theplurality of instructions comprising instructions to: receive a SMBconfiguration read command including a configuration register addressfrom an external micro-controller; request access to an internal busfrom a bus arbiter; forward the SMB configuration read command to aconfiguration register of a peripheral device identified by theconfiguration register address using the internal bus when bus access isgranted; responsive to the SMB configuration read command, receiveconfiguration register values for the identified configuration registerfrom the peripheral device; and forward the configuration registervalues to the external micro-controller.
 16. The machine-readable mediumof claim 15 having stored thereon additional executable instructions,the additional instructions comprising instructions to: determine by thebus arbiter whether the internal bus is available for access; andgranting access to the internal bus when the internal bus is available.17. The machine-readable medium of claim 15 having stored thereonadditional executable instructions, the additional instructionscomprising instructions to: receive a request to access the internal busfrom the peripheral device by the bus arbiter; determine when theinternal bus is available for access by the peripheral device; and grantbus access to the peripheral device when the internal bus is available.18. The machine-readable medium of claim 17 having stored thereonadditional executable instructions, the additional instructionscomprising instructions to: receive the SMB configuration read commandat the peripheral device; retrieve configuration register values inconfiguration register identified by the configuration register address;and forward the configuration register values when the internal bus isavailable.